

# name = input("请输入姓名")
# school = input("请输入学校")
# print("你好，我叫{name},我是来自{school}的一名学生".format(name='wgc',school='北京工业大学'))
# 格式化输出
# format ：
# 它是用来格式化输出的

# 提一个小建议，还有一个东西呢叫 f-string 这是一个神器来的，可以学习一下


# 给定一个列表 list ，然后呢？列表里面呢都是一些数字，需要我们现在，将此列表中的数字平方，再将数据，放到另外一个列表中，然后打印出来
# a = [1,2,3,4,5,6]
# b = []
# # 尾插
# # b = []
# # 插入第一个元素之后：
# # b = [num1]
# # 插入第二个：
# # b = [num1,num2]
#
# # 头插
# # 插入第二个:
# # b = [num2,num1]
# for num in a:
#     num = num ** 2
#     b.append(num)
# print(b)
# #

# a = [1,2,3,4,5,6]
# b = [num ** 2 for num in a if num % 2 == 1]
# b = [num if num % 2 == 0 else -num for num in range(1,6)]
#
#
# #  if..else
# print(b)


# 函数——(方法)

# a = 1
# b = 2
# c = 3
# d = 4
#
# # 我现在需要它们，依次一个一个，相加之后，在自乘等于2 等到答案
# ab = (a + b)
# ab *= 2


# def add(x,y):# 我想让他当做我的加法器
#     return x+y
#
# def myprint(): # void类型
#     if(1 < 2): #
#         return True
#     else:
#         return False
#
# #NodeType类型叫做void 那么它是不需要返回的
#
# # 记住函数要返回
# print(type(add('hello','world')))
#
# result = add('hello','world')
# print(result)
# 函数重载
# 不支持函数多重名
# 如果存在多个同名函数，后者覆盖前者
# server
# def Add(x,y,z=0):
#     # 默认参数必须两个都填写进去 从右往左默认构造
#
#     return x+y+z
#
# # client
# print(Add(1,3))

# python 支持返回多个值
# def get_point():
#     x = 10
#     y = 'hello'
#     return x,y
# # 元组
# # (10,'hello')
# print(type(get_point()))
# _,y = get_point()
# # _ 叫做占位符
# print(y)

# 函数跟别的str,list,int等等等等都是一样，是一个并列关系，都是一个对象
# def add(x,y):
#     return x+y
# print(type(add))
# # 说明这个类型叫做函数类型
# # 同时可以说明，这个函数可以作为另外一个函数的参数，也能作为另外一个函数的返回值。
#
# print("hello {}".format("hello wald").title())

#刚刚那种方法，没有储存起来，所以我们很难去对它进行操作
# read 只读
# f = open("/Users/wuguocheng/Desktop/temp/test.txt",'r') # Open内建函数
# lines = f.readlines()
# print(type(lines))
# print(lines)
# f.close()
# 这个方法有一个好处，就是我们可以在List当中，去解决它，去处理它
# interface
# 句柄
# # write
# f.tx = open("/Users/wuguocheng/Desktop/temp/tet",'w')
# for i in range(0,10):
#     f.write('hello joe\n')
# f.close()
# aaa
# ccc
# ddd
# aaa
# aaa
# aaa
# 得到一个列表，这个列表存储的是所有元素各自出现的次数
# ['4','1','1','1']
# 'ip' : '192.0.0.1'
# dict 字典
# f = open("/Users/wuguocheng/Desktop/temp/test.txt",'r')
#
# word_list = {} # 空的列表
# for word in f: # 拿到的是一行数据(包含\n)
#     word = word.strip() # 去掉当前字符串前后的空白字符 ' '、'\n'、'\t' ...
#     # 这里面的value 我们如果开始不定义的话，我们可以任意往里面加入新的值，而且类型不限，但是，你只能第一次加入一种类型，第二次之后，你必须得跟第一次是一样的
#     if word in word_list:
#        word_list[word] += 1 # 箭值对 'key' : 'value'
#     else:
#        word_list[word] = 1 # 'aaa' : 3
#                             # 'ccc' : 1
# print(word_list)
# f.close()


# 模块
# import

# import tools
#
# # 起到命名空间的作用
# def add(x,y,z):
#     return x+y+z
# print(tools.add(2,3))
# print(add(1,2,3))

# 一个模块要想被正确导入进我们的程序，必须必须放在合适的目录
# 1.当前目录
# 2.系统目录(python解释器安装目录)  pip


# 1 - 100   （61
# 50 不好意思，猜小了
# 75 不好意思，猜大了
# 61 猜对你恭喜你
########## 欢迎 ############
# import json
#
#
# def func():
#     x = 10
#     y = 20
#     return x,y

# for _n in range(0,10):
#     print(_n)
#
# print(_n)
# a = 2
# b = 3
# print(id(b))
# print(id(1))
# a += 1
# b += 1
# print(id(a))


# 80个字符换一次\

# print('haha');print('hehe')  # ;这个东西，在python几乎用不着，所以不要用没必要。


# x = 10
# y = 10

#x = 1
#y = 2

# 交换两个变量的值


#x = 10
#y = 20
#
#x,y = y,x
#
#print(x,y)

# & ｜ ^

# x = 10
# # GC
#
# def Tw():
#         x = 20
#         print(x)
#
# Tw()
#  print(x)

# private 变量，别人不能从外部调用你

# a = 3
# b = 2
# print(id(b))
# b += 1
# print(id(b))
# print(id(3))
# a = 20
# print(type(a))
# print(type)
#
# b = None # void
# print(type(b))

# 0 为 False
# 非0 为 True
# a = None # None默认为False
# if a:
#         print("hehe")
# else:
#         print("haha")
#
# b = [] # False
# if not b: # 如果此列表为空列表
#         print("1")
# else:
#         print("2")
#
#


